const fs = require('fs')
const express = require('express')


const app = express()
// 使用内置中间件=>配置静态资源
// app.use(express.static('public'))

// 使用自定义中间件 => 配置静态资源

// 使用高阶函数=>柯里化函数

function myStatic(dir){
    return (req,res,next) =>{
        console.log('myStatic');
        // 得到资源的path
        let path = req.path
        // 如果是根路径,修正为/index.html
        if(path === '/'){
            path = '/index.html'
        }
        // 得到资源的绝对路径
        const filePath = __dirname + '/' + dir + path

        //读取资源文件
        fs.readFile(filePath,(error,data)=>{
            // 如果文件不存在
            if(error){
                next()
            }else{
                // res.end(data) // data是buffer对象
                res.send(data.toString())
            }
        })

    }
}
app.use(myStatic('public'))

app.use(express.urlencoded({extended:false}))
app.use(express.json())


//注册路由(get请求)
app.get('/middleware',(req,res)=>{
    res.send('middleware response')
})

app.post('/middleware',(req,res)=>{

    const {b,c} = req.body
    console.log('请求体参数',b,c);

    res.send('middleware response')
})


//启动服务,监听指定
app.listen('3007',()=>{
    console.log('服务已启动:http://localhost:3007');
})